#ifndef __T_LISTASIMPLE__
#define __T_LISTASIMPLE__

#include <malloc.h>
#include <memory.h>
#include "TMovimiento.h"

#define TLS_OK 0
#define TLS_ERR_MEMORIA 1
#define TLS_ERR_LISTAVACIA 2
#define TLS_ERR_NOHAYSIGUIENTE 3
#define TLS_ERR_NOIMPLEMENTADO 4

typedef struct TNodoSimple {
       void* elemento;
       struct TNodoSimple *siguiente;
} TNodoSimple;

typedef struct {
       TNodoSimple *primero, *corriente;
       int tam_dato;
} TListaSimple;

void LS_Crear(TListaSimple* lista, int tam_dato);
void LS_Vaciar(TListaSimple* lista);
int LS_Vacia(TListaSimple lista);
void LS_ElemCorriente(TListaSimple lista, void* elemento);
void LS_ModifCorriente(TListaSimple* lista, void* elemento);
int LS_MoverCorriente(TListaSimple* lista, TMovimiento movimiento);
int LS_BorrarCorriente(TListaSimple* lista);
int LS_Insertar(TListaSimple* lista, TMovimiento M, void* elemento);

#endif

